//
//  DMLoginViewController.swift
//  DM_新浪微博
//
//  Created by Damon.JiAo on 16/2/26.
//  Copyright © 2016年 Demon_JiAo. All rights reserved.
//

import UIKit
import AFNetworking
import SVProgressHUD

class DMLoginViewController: UIViewController,UIWebViewDelegate {
    
    var webView:(UIWebView)?
    
    /** 这个方法也会调用一次！ 让它调用两次的方法就是 重新设置window的根视图 */
    override func loadView() {
        webView = UIWebView()
        
        webView?.delegate = self
        
        view = webView
    }
    
    /** 完成基本的视图加载 */
    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = UIColor.whiteColor()
        
        /** 设置Nav */
        setNav()
        
        /** 设置请求 */
        let url = NSURL(string: "https://api.weibo.com/oauth2/authorize?client_id=\(App_KEY)&redirect_uri=\(App_URL)")!
        
        let request = NSURLRequest(URL: url)
        
        webView?.loadRequest(request)
        
    }
    
    /** 设置nav头部属性 */
    private func setNav(){
        let leftItem = UIBarButtonItem(title: "取消", style: UIBarButtonItemStyle.Plain, target: self, action: "registerClick")
        
        let rightItem = UIBarButtonItem(title: "自动填充", style: UIBarButtonItemStyle.Plain, target: self, action: "autoClick")
        
        navigationItem.leftBarButtonItem = leftItem
        navigationItem.rightBarButtonItem = rightItem
        
    }
    
    /** 取消按钮的点击事件 */
    func registerClick(){
        
        
        dismissViewControllerAnimated(true, completion: nil)
    }
    
    /** 自动填充的点击事件 */
    func autoClick(){
        let js = "document.getElementById(\"userId\").value = \"jiao_demon@sina.com\";document.getElementById(\"passwd\").value = \"54jiaozijie\";"
        
        webView?.stringByEvaluatingJavaScriptFromString(js)
    }
    
}

/** 目的是拿到 -- 参数“Code” -- 授权 */
extension DMLoginViewController{
    
    /** 完成代理方法！ */
    func webViewDidStartLoad(webView: UIWebView) {
        
        SVProgressHUD.show()
        
    }
    
    func webViewDidFinishLoad(webView: UIWebView) {
        SVProgressHUD.dismiss()
    }
    
    func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
        
    }
    
    /** 代理方法的实现 */
    func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        
        /** request参数是NSURLRequest类型 -- 转化成String类型 */
        print(request.URL?.absoluteString)
        
        /** request参数是NSURLRequest类型 -- 转化成String类型 */
        if let req = request.URL?.absoluteString{
            
            /** 第一种截取"code"方式 */
            if req.hasPrefix(App_URL){
                
                if let code = request.URL?.query{
                
                    let subCode = code.substringFromIndex("code=".endIndex)
                    /** 利用Block回调成功之后的回调！ */
                    DMUserViewModel().loadToken(subCode, successBlock: { () -> () in
                        print("成功下载")
                        
                        self.dismissViewControllerAnimated(true, completion: { () -> Void in
                            /** 通知消息 */
                            print("==通知==")
                            NSNotificationCenter.defaultCenter().postNotificationName(WBSwitchRootVCNotification, object: nil)
                        })
                        
                        }, failureBlock: { () -> () in  // 失败回调
                            print("失败")
                    })
                    
                    return false
                }
            }
        }
        return true
    }

}



/** 第二种截取"code"方式 */

//            if req.hasPrefix(App_URL){
/** 根据“=”将目标字符串分割 */
//                let subString = req.componentsSeparatedByString("=")
//
//                if subString.count > 0{
//                    let purString = subString.last
//
//
//                }
//            }